/**
 * JS-RegExp: 正则表达式 
 * 1. 如何创建正则表达式对象
 * 2. 正则表达式的语法规则
 * 3. 如何使用正则表达式
 * 
 * @author:hexunjian
 * @time: 2021-01-21
 * @email: cvper@sina.com
 */

// js正则表达式的两种创建方式 
function jsRegExpCreateStyle(){
  // 直接创建 + 使用 RegExp 构造函数创建
  let regExp1 = /a/              
  let regExp2 = new RegExp('a') 
  let regExp4 = new RegExp("a")
  let regExp3 = new RegExp(/a/)
}

// js使用正则表达式
function jsRegExpUseFunc(){
  /**
   * 1 => compile()
   *     语法：RegExpObject.compile(regexp, modifier)
   *      =>  用于在脚本执行过程中编译正则表达式
   *      =>  用于改变和重新编译正则表达式
   *   
   * 2 => exec()
   *      语法：RegExpObject.exec(string)
   *       =>  用于检索字符串中的正则表达式的匹配
   *       =>  返回一个数组，其中存放匹配的结果。如果未找到匹配，则返回值为 null。
   * 
   * 3 => test()
   *      语法：RegExpObject.test(string)
   *       =>  检测一个字符串是否匹配某个模式
   *       =>  如果字符串 string 中含有与 RegExpObject 匹配的文本，则返回 true，否则返回 false。
   * 
   * 4 => match()
   *      语法：stringObject.match(searchvalue)
   *            stringObject.match(regexp)
   *       =>   可在字符串内检索指定的值，或找到一个或多个正则表达式的匹配
   *       =>   存放匹配结果的数组。该数组的内容依赖于 regexp 是否具有全局标志 g
   * 
   * 5 => matchAll()
   *      语法：
   *       =>
   *       =>
   * 
   * 6 => replace()
   *      语法：stringObject.replace(regexp/substr,replacement)
   *       =>  用于在字符串中用一些字符替换另一些字符，或替换一个与正则表达式匹配的子串。
   *       =>  一个新的字符串，是用 replacement 替换了 regexp 的第一次匹配或所有匹配之后得到的。
   * 
   * 7 => search()
   *      语法：stringObject.search(regexp)
   *       =>   用于检索字符串中指定的子字符串，或检索与正则表达式相匹配的子字符串。
   *       =>   stringObject 中第一个与 regexp 相匹配的子串的起始位置。 注释：如果没有找到任何匹配的子串，则返回 -1。
   * 
   * 8 => split()
   *      语法：stringObject.split(separator,howmany)
   *       =>   用于把一个字符串分割成字符串数组。
   *       =>  一个字符串数组。该数组是通过在 separator 指定的边界处将字符串 stringObject 分割成子串创建的。
   *           返回的数组中的字串不包括 separator 自身。但是，如果 separator 是包含子表达式的正则表达式，
   *           那么返回的数组中包括与这些子表达式匹配的字串（但不包括与整个正则表达式匹配的文本）。
   * 
   * 9 => toString()
   *      语法：arrayObject.toString()
   *       =>  可把数组转换为字符串，并返回结果。
   *       =>  arrayObject 的字符串表示。返回值与没有参数的 join() 方法返回的字符串相同。
   */
}

function jsRegExpDecoration(){
  /**
   * 3、正则表达式修饰如何使用
   *    i => 不区分大小写 
   *    g => 全局匹配
   *    m => 多行匹配
   */
  let pattern = /a/igm
}



export default jsRegExpCreateStyle
  